今天繼續Docker Compose file的指令學習,由於docker stack比較特別可能要搭配docker swarm單獨一篇主要學習它們,因此有關於docker stack的命令我都先跳過。
command指令可以覆蓋默認的執行指令
可以設置帳戶的憑證的位置,僅能在window container使用。
可以配置服務的依賴項,啟動包含依賴的服務時就會先啟動依賴服務,不過啟動依賴不會等待類似DB、Redis、solr或是Elasticsearch的狀態就緒,如果需要此功能就需要透過三方工具或是寫腳本做連接測試。
將本機的位置添加到container
devices:
  - "/dev/ttyUSB0:/dev/ttyUSB0"
docker compose file也可以設定自己的DNS Server
dns:
  - 8.8.8.8
  - 9.9.9.9
設置DNS的搜尋域名
dns_search:
  - dc1.example.com
  - dc2.example.com
包含環境變數的檔案,可以帶入環境變數...
services:
  some-service:
    env_file:
      - a.env
      - b.env
在compose file中添增環境變數
environment:
  - RACK_ENV=development
  - SHOW=true
  - SESSION_SECRET
當不建置在主機時,用來設定要公開的端口
expose:
  - "3000"
  - "8000"
能夠用來增加主機名,增加的主機名會儲存在/etc/hosts內
extra_hosts:
  - "somehost:162.242.195.82"
  - "otherhost:50.31.209.229"
同Day13 Dockerfile指令大集(二)提到的Dockerfile的健康檢查
標出需要使用的image名稱,如果image不存在,compose會幫你建置。
可以在container內執行初始化程序(還不知道能幹嘛...
主要是window在使用,可以配置default, process and hyperv


將配置的值添加至container
服務log紀錄的路徑配置,可以設置driver以及options。
driver可以配置"json-file"(預設)、"syslog"以及"none"
options可以配置address以及檔案大小還有數量
driver: "syslog"
options:
  syslog-address: "tcp://192.168.0.42:123"
  max-size: "200k"
  max-file: "10"
配置網路的模式,包含"bridge"、"host"、"none"、"service:[service name]"、"container:[container name/id]"
配置要使用的網路,除此之外也可以設置別名(ALIASES)還有IPV4以及IPV6的設定
服務要公開的port號
簡單表示方法
ports:
    - 3000:3000
詳細的表示方法
ports:
  - target: 3000
    published: 3000
    protocol: tcp
    mode: host
今天超過了昨天訂下的進度,明天就一鼓作氣將全部的compose file命令了解完,再來就要來學docker swarm以及docker stack。
參考文獻:
docker官方文件